// pages/user/medical/list.js
const medicalService = require('../../../services/medical');
const app = getApp();

Page({
  /**
   * 页面的初始数据
   */
  data: {
    petId: null,          // 宠物ID
    petName: '',          // 宠物名称
    records: [],          // 健康档案列表
    pagination: {         // 分页信息
      page: 1,
      size: 10,
      total: 0,
      hasMore: false
    },
    isLoading: true,      // 是否正在加载
    isLoadingMore: false, // 是否正在加载更多
    error: null           // 错误信息
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log('健康档案列表页面加载, 参数:', options);
    
    if (!options.petId) {
      this.setData({
        isLoading: false,
        error: '缺少宠物ID'
      });
      return;
    }
    
    this.setData({
      petId: options.petId,
      petName: options.petName || '我的宠物'
    });
    
    this.loadRecords();
  },

  /**
   * 加载健康档案列表
   */
  loadRecords: function (page = 1) {
    const isRefresh = page === 1;
    
    this.setData({
      isLoading: isRefresh,
      isLoadingMore: !isRefresh,
      error: null
    });
    
    medicalService.getPetMedicalRecordsPage(this.data.petId, page, this.data.pagination.size)
      .then(res => {
        console.log('获取健康档案列表成功:', res);
        
        // 设置健康档案列表数据
        const records = isRefresh ? res.records : [...this.data.records, ...res.records];
        
        this.setData({
          records: records,
          pagination: {
            page: page,
            size: this.data.pagination.size,
            total: res.total,
            hasMore: page < res.pages
          },
          isLoading: false,
          isLoadingMore: false
        });
      })
      .catch(err => {
        console.error('获取健康档案列表失败:', err);
        this.setData({
          isLoading: false,
          isLoadingMore: false,
          error: err.message || '获取健康档案列表失败'
        });
      });
  },

  /**
   * 查看健康档案详情
   */
  viewDetail: function (e) {
    const id = e.currentTarget.dataset.id;
    if (!id) return;
    
    wx.navigateTo({
      url: `/pages/medical/detail?id=${id}`
    });
  },

  /**
   * 加载更多
   */
  loadMore: function () {
    if (this.data.isLoadingMore || !this.data.pagination.hasMore) return;
    
    const nextPage = this.data.pagination.page + 1;
    this.loadRecords(nextPage);
  },

  /**
   * 刷新列表
   */
  refreshList: function () {
    this.loadRecords(1);
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    this.refreshList();
    wx.stopPullDownRefresh();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    this.loadMore();
  },

  /**
   * 返回上一页
   */
  navigateBack: function () {
    wx.navigateBack();
  }
}); 